/**
 * @Author：ming
 * @Date：2023/10/29 9:39 PM
 * @Filename：Hot19
 */

/**
 * @author ming
 */
public class Hot19 {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        //求出长度，再得出倒数是顺数第几
        ListNode p = head;
        int len =0;
        while (p!=null){
            len++;
            p=p.next;
        }
        int order = len+1 - n;
        if(order==1){
            return head.next;
        }
        //找到要删除的前一个,即为p
        p= head;
        while (order>2){
            p =p.next;
            order--;
        }
        //删除,即删除结点的前一个结点的后指针，指向删除结点的后指针
        p.next = p.next.next;

        return head;
    }
}
